package ua.at.tsvetkov.samizdat.activities;

import ua.at.tsvetkov.application.AppConfig;
import ua.at.tsvetkov.net.NetCheck;
import ua.at.tsvetkov.samizdat.Key;
import ua.at.tsvetkov.samizdat.R;
import ua.at.tsvetkov.samizdat.adapters.AdtAcMainMenu;
import ua.at.tsvetkov.ui.Rout;
import ua.at.tsvetkov.util.Log;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.Toast;

/**
 * @author A.Tsvetkov 2011, http://tsvetkov.at.ua, al@ukr.net Основной экран. Главное меню.
 */
public class AcMainMenu extends AcTemplate implements OnClickListener {

	private static final int	DIALOG_NEW_VERSION		= 3;
	private static final int	DIALOG_INTERNET_IS_NEED	= 4;
	private GridView				gridView;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		mainFrame.addView(mInflater.inflate(R.layout.ac_main_menu, null));
		gridView = (GridView) findViewById(R.id.AcMainMenuGridView);
		gridView.setAdapter(new AdtAcMainMenu(this));
		gridView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
				switch (position) {
					case 0: {
						Intent intent = new Intent(AcMainMenu.this, AcGenres.class);
						startActivity(intent);
						break;
					}
					case 1: {
						Intent intent = new Intent(AcMainMenu.this, AcAlphabet.class);
						startActivity(intent);
						break;
					}
					case 2: {
						String st = AppConfig.getString(Key.CURRENT_BOOK);
						if (st.length() == 0) {
							Rout.toast(AcMainMenu.this, "У вас нет начатой книги.", Toast.LENGTH_LONG);
							return;
						}
						Intent intent = new Intent(AcMainMenu.this, AcBook.class);
						startActivity(intent);
						break;
					}
					case 3: {
						Intent intent = new Intent(AcMainMenu.this, AcLoadedAuthors.class);
						startActivity(intent);
						break;
					}
					case 4: {
						Intent intent = new Intent(AcMainMenu.this, AcFavoriteBooks.class);
						startActivity(intent);
						break;
					}
					case 5: {
						Intent intent = new Intent(AcMainMenu.this, AcFavoriteAuthors.class);
						startActivity(intent);
						break;
					}
					case 6: {
						Intent intent = new Intent(AcMainMenu.this, AcSearchAuthor.class);
						startActivity(intent);
						break;
					}
				}
			}

		});
		if (AppConfig.isNewVersion()) {
			showDialog(DIALOG_NEW_VERSION);
		}
		if (!NetCheck.getInstance().isOnline()) {
			showDialog(DIALOG_INTERNET_IS_NEED);
		}

	}

	/*
	 * (non-Javadoc)
	 * @see ua.at.tsvetkov.debug.AcSimpleTrackingActivity#onResume()
	 */
	@Override
	protected void onResume() {
		NetCheck.getInstance().turnOnWiFi(this);
		super.onResume();
	}

	@Override
	public Dialog onCreateDialog(int id) {
		switch (id) {
			case DIALOG_NEW_VERSION: {
				AlertDialog.Builder d = new AlertDialog.Builder(this);
				d.setTitle(R.string.new_in_version_title);
				d.setMessage(R.string.new_in_version);
				d.setPositiveButton("Дальше", null);
				d.setCancelable(true);
				return d.create();
			}
			case DIALOG_INTERNET_IS_NEED: {
				AlertDialog.Builder d = new AlertDialog.Builder(this);
				d.setTitle("Интернет отсутствует!");
				d.setMessage("Подключение к Интернет необходимо для предварительной загрузки списков библиотеки и произведений!\n\nПослей загрузки Вы сможете читать без доступа в Интернет.");
				d.setPositiveButton("Понятно", null);
				d.setCancelable(true);
				return d.create();
			}
		}
		return super.onCreateDialog(id);
	}

	/*
	 * (non-Javadoc)
	 * @see android.app.Activity#onBackPressed()
	 */
	@Override
	public void onBackPressed() {
		super.onBackPressed();
		try {
			NetCheck.getInstance().stop();
			finalize();
			finish();
			System.exit(1);
		} catch (Throwable e) {
			e.printStackTrace();
		}
	}

	@Override
	public void onClick(View v) {
		Log.d("Нажато " + v.getId());
	}

}
